package com.iqiyi.pps.epg.core.service.stream;

import com.iqiyi.pps.epg.api.model.web.stream.TNetMonitorInfo;
import com.iqiyi.pps.epg.core.dao.log.StreamMonitorLogDao;
import com.iqiyi.pps.epg.core.model.stream.LiveStream;
import com.iqiyi.pps.epg.core.model.stream.LiveStreamMonitor;
import com.iqiyi.pps.epg.core.model.stream.StreamCutterIdData;
import com.iqiyi.pps.epg.core.model.stream.StreamSpanLog;

import java.util.List;

public interface LiveStreamService {
    void save(LiveStream liveStream);

    void edit(LiveStream liveStream);

    void delete(Long fatherId, String streamName, String formatType);

    void delete(Long id);

    LiveStream getById(Long id);

    List<LiveStream> get(Long fatherId);

    List<LiveStream> get(Long fatherId, String streamName);

    LiveStream get(Long fatherId, String streamName, String formatType);

    LiveStream getByDefault(Long fatherId, String formatType, Boolean isDefault);

    List<LiveStream> getByFormatType(Long fatherId, String formatType);

    List<LiveStream> get(int status);

    List<LiveStream> getByStatus(Long fatherId, String streamName, int status);

 //   void writeToTvQipu(Long fatherId, Long oldQipuId, List<LiveChannelStream> liveChannelStreams);

    List<LiveStream> getNeedCheckList();

    List<StreamCutterIdData> getCutterIdInfo(int maxVal, String sortType, String cutterType);

    void deleteQipu(long liveChannelStreamId, long fatherId, String streamName, LiveStream defaultStream, int streamApiVersion);

    void saveStreamSpanLog(StreamSpanLog streamSpanLog);

    List<TNetMonitorInfo> getNetMonitorInfo(long channelQipuId);

    void saveStreamMonitorLog(LiveStreamMonitor liveStreamMonitor);

    void emailNotifyUser(String msg);

    String getLiveChannelName(String streamIp, String streamName);

    List<String> getNotifyErrCode();


}

